home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / web / js / utf8.js < prev   
Text File  |  2008-06-27  |  2KB  |  68 lines

  1. /**
  2. *
  3. *  UTF-8 data encode / decode
  4. *  http://www.webtoolkit.info/javascript-utf8.html
  5. *
  6. **/
  7. var utf8 = {
  8.  
  9.     // public method for url encoding
  10.     encode : function (string) {
  11.         string = string.replace(/\r\n/g,"\n");
  12.         var utftext = "";
  13.  
  14.         for (var n = 0; n < string.length; n++) {
  15.  
  16.             var c = string.charCodeAt(n);
  17.  
  18.             if (c < 128) {
  19.                 utftext += String.fromCharCode(c);
  20.             }
  21.             else if((c > 127) && (c < 2048)) {
  22.                 utftext += String.fromCharCode((c >> 6) | 192);
  23.                 utftext += String.fromCharCode((c & 63) | 128);
  24.             }
  25.             else {
  26.                 utftext += String.fromCharCode((c >> 12) | 224);
  27.                 utftext += String.fromCharCode(((c >> 6) & 63) | 128);
  28.                 utftext += String.fromCharCode((c & 63) | 128);
  29.             }
  30.  
  31.         }
  32.  
  33.         return utftext;
  34.     },
  35.  
  36.     // public method for url decoding
  37.     decode : function (utftext) {
  38.         var string = "";
  39.         var i = 0;
  40.         var c = c1 = c2 = 0;
  41.  
  42.         while ( i < utftext.length ) {
  43.  
  44.             c = utftext.charCodeAt(i);
  45.  
  46.             if (c < 128) {
  47.                 string += String.fromCharCode(c);
  48.                 i++;
  49.             }
  50.             else if((c > 191) && (c < 224)) {
  51.                 c2 = utftext.charCodeAt(i+1);
  52.                 string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
  53.                 i += 2;
  54.             }
  55.             else {
  56.                 c2 = utftext.charCodeAt(i+1);
  57.                 c3 = utftext.charCodeAt(i+2);
  58.                 string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
  59.                 i += 3;
  60.             }
  61.  
  62.         }
  63.  
  64.         return string;
  65.     }
  66.  
  67. }
  68.